#include<stdio.h>
#include<stdlib.h>

void abc(int a[],int n,int m,int p,int array_size)
{
    if(m==1)
    {
        a[p]=n+1;
        if(p>0)
        {
            if(a[p]<a[p-1])
            {
                //printf("+++++++++\n");
                //p=0;
                return;
            }
        }


        int cnt;
        for(cnt=0; cnt<array_size; cnt++)
        {
            printf("%d ",a[cnt]);
        }
        printf("\n");

        return;
    }

    int i;
    for(i=0;i<n;i++)
    {
        a[p]=i+1;
        if(p>0)
        {
            if(a[p]<a[p-1])
            {
                continue;
            }
        }
        printf("a[p]=i+1; here %d\n",p);
        p++;
        abc(a,n-i,m-1,p,array_size);
        p--;
    }
}

main()
{
    int n=20;
    int m=10;
    int a[10]= {0};
    abc(a,n-m,m,0,m);
}

